FIG. 1 illustrates a conventional storage subsystem employing a host 20, a variable data block size storage device 30 (e.g., a tape drive system), and a storage controller 40 employing a sequential media read module 41 for executing read requests of data recorded on a sequential media 31 (e.g., a tape cartridge) readable by way of a device 30 as requested by host 20 and for autonomously executing read ahead requests of the data recorded on sequential media 31 on behalf of host 20.
In operation, module 41 initially executes a read request RR20 of the data recorded on sequential media 31 as requested by host 20 and returns recorded data RCD20 responsive to the execution of read request RR20 to host 20. Thereafter, module 41 determines if the execution of one or more read ahead requests of the data recorded on sequential media 31 on behalf of host 20 is warranted. If so, as exemplarily illustrated in FIGS. 2 and 3, module 41 conservatively allocates space in a cache 42 for one or more read requests where a read ahead data block size (“RADBS”) of each read ahead request equals a maximum recorded data block size (“MRCDBS”) parameter of device 30. This allocation of space by module 41 is necessary in view of the facts that the recorded data block size of some or all of the data recorded on sequential media 31 may be less than the MRCDBS parameter, and module 41 will not know the largest recorded data block size of the data recorded on sequential media 31 when executing a read ahead request. Module 41 therefore executes an X number of read ahead requests RAR42(X) with the read ahead data block size RADBS of each read ahead request equaling the MRCDBS parameter. This conservative read ahead process is optimally performed by module 41 when the recorded data block size RCDBS42(X) of recorded data RCD42(X) responsive to an execution of a read ahead request RAR42(X) as stored in cache 42 equals the read ahead data block size RADBS42(X) of the read ahead request RAR42(X) as exemplarily shown in FIG. 2. Conversely, this conservative read ahead process is not optimally performed by module 41 when the recorded data block size RCDBS42(X) of recorded data RCD42(X) responsive to an execution of a read ahead request RAR42(X) as stored in cache 42 is less than the read ahead data block size RADBS42(X) of the read ahead request RAR42(X) as exemplarily shown in FIG. 3. The primary reason such a case is not optimal is the requirement by device 30 to execute an interrupt to build a special status and extra interface overhead to report to module 41 the difference between the recorded data block size RCDBS42(X) of recorded data RCD42(X) as stored in device 31 and the read ahead data block size RADBS42(X) of the read ahead request RAR42(X). 
A challenge therefore for the storage industry is to improve upon a performance of a read ahead processing of data recorded on a sequential media readable via a variable data block size storage device when the recorded data block size of recorded data responsive to a read ahead request does not equal the read ahead data block size of the read ahead request.